// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add("login", (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
Cypress.Commands.add("verifyConnected", () => {
  cy.contains("Transmission Client");
  cy.getByTestId("connected-icon");
});

Cypress.Commands.add("getByTestId", (selector, ...args) =>
  cy.get(`[data-testid=${selector}]`, ...args)
);

Cypress.Commands.add("visitWithoutLocalStorage", (url, options) =>
  cy.visit(url, {
    onBeforeLoad: (window) => {
      window.localStorage.clear();
    },
    ...options,
  })
);

// eslint-disable-next-line cypress/no-unnecessary-waiting
Cypress.Commands.add("waitForWritteState", () => cy.wait(300));
